[INFO] cloning repository https://github.com/Eddieg26/rouge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Eddieg26/rouge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEddieg26%2Frouge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEddieg26%2Frouge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8eeca46ae0a25eab4e01c98d29a8e3bb2ab1355a
[INFO] fixing Eddieg26/rouge against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEddieg26%2Frouge" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Eddieg26/rouge
[INFO] finished tweaking git repo https://github.com/Eddieg26/rouge
[INFO] tweaked toml for git repo https://github.com/Eddieg26/rouge written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Eddieg26/rouge on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Eddieg26/rouge already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61
[INFO] running `Command { std: "docker" "start" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating examples/basic/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/asset/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/ecs/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/game/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/window/Cargo.toml from 2021 edition to 2024
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]     Checking value-bag v1.9.0
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking libloading v0.8.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling wayland-sys v0.31.5
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling quick-xml v0.36.2
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling wayland-client v0.31.7
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]     Checking foldhash v0.1.3
[INFO] [stderr]     Checking event-listener v5.3.1
[INFO] [stderr]     Checking fastrand v2.1.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]     Checking futures-lite v2.3.0
[INFO] [stderr]     Checking cursor-icon v1.1.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.2
[INFO] [stderr]    Compiling wayland-scanner v0.31.5
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking ttf-parser v0.25.0
[INFO] [stderr]     Checking bytemuck v1.19.0
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]    Compiling cc v1.1.31
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking async-lock v3.4.0
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling cpufeatures v0.2.14
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling winit v0.30.5
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking async-executor v1.13.1
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling wayland-backend v0.3.7
[INFO] [stderr]    Compiling blake3 v0.1.3
[INFO] [stderr]    Compiling rust-embed-utils v8.5.0
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking dpi v0.1.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking file-id v0.2.1
[INFO] [stderr]     Checking notify-debouncer-full v0.3.1
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]     Checking pollster v0.2.4
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling rust-embed-impl v8.5.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking rust-embed v8.0.0
[INFO] [stderr]     Checking vfs v0.12.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking hashbrown v0.15.0
[INFO] [stderr]     Checking uuid v1.10.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]     Checking ecs v0.1.0 (/opt/rustwide/workdir/crates/ecs)
[INFO] [stderr]    Migrating crates/ecs/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed crates/ecs/src/archetype/mod.rs (2 fixes)
[INFO] [stderr]        Fixed crates/ecs/src/archetype/table.rs (5 fixes)
[INFO] [stderr]        Fixed crates/ecs/src/task/mod.rs (1 fix)
[INFO] [stderr]        Fixed crates/ecs/src/core/entity.rs (5 fixes)
[INFO] [stderr]     Checking game v0.1.0 (/opt/rustwide/workdir/crates/game)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/ecs/src/archetype/mod.rs:166:19
[INFO] [stdout]     |
[INFO] [stdout] 165 |         for (id, component) in components.drain() {
[INFO] [stdout]     |                                ------------------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 166 |             match row.add_cell(id, component) { Some(component) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 167 |                 replaced.add_cell(id, component);
[INFO] [stdout]     |                 --------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/ecs/src/archetype/mod.rs:212:38
[INFO] [stdout]     |
[INFO] [stdout] 210 |         for component in components {
[INFO] [stdout]     |             ---------    ----------
[INFO] [stdout]     |             |            |
[INFO] [stdout]     |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `component` calls a custom destructor
[INFO] [stdout]     |             `component` will be dropped later as of Edition 2024
[INFO] [stdout] 211 |             let id = component.as_ref();
[INFO] [stdout] 212 |             if let Some(component) = row.remove_cell(id) {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                      up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 213 |                 removed.add_cell(*id, component);
[INFO] [stdout]     |                 --------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 214 |             }
[INFO] [stdout] 215 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:372:31
[INFO] [stdout]     |
[INFO] [stdout] 372 |             let id = unsafe { WORLD_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed) };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout] 365 -     pub static mut WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout] 365 +     pub static WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/ecs/src/archetype/mod.rs:166:19
[INFO] [stdout]     |
[INFO] [stdout] 165 |         for (id, component) in components.drain() {
[INFO] [stdout]     |                                ------------------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 166 |             match row.add_cell(id, component) { Some(component) => {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 167 |                 replaced.add_cell(id, component);
[INFO] [stdout]     |                 --------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 171 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/game/src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/ecs/src/archetype/mod.rs:212:38
[INFO] [stdout]     |
[INFO] [stdout] 210 |         for component in components {
[INFO] [stdout]     |             ---------    ----------
[INFO] [stdout]     |             |            |
[INFO] [stdout]     |             |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |             |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |             `component` calls a custom destructor
[INFO] [stdout]     |             `component` will be dropped later as of Edition 2024
[INFO] [stdout] 211 |             let id = component.as_ref();
[INFO] [stdout] 212 |             if let Some(component) = row.remove_cell(id) {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                      up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 213 |                 removed.add_cell(*id, component);
[INFO] [stdout]     |                 --------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 214 |             }
[INFO] [stdout] 215 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:514:1
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Drop for BlobCell {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:372:31
[INFO] [stdout]     |
[INFO] [stdout] 372 |             let id = unsafe { WORLD_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed) };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout] 365 -     pub static mut WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout] 365 +     pub static WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking polling v3.7.3
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking async-io v2.3.4
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking async-global-executor v2.4.1
[INFO] [stderr]     Checking async-std v1.13.0
[INFO] [stderr]     Checking wayland-protocols v0.32.5
[INFO] [stderr]     Checking wayland-cursor v0.31.7
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking asset v0.1.0 (/opt/rustwide/workdir/crates/asset)
[INFO] [stderr]    Migrating crates/asset/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed crates/asset/src/io/embedded.rs (4 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/asset/src/database/update.rs:47:23
[INFO] [stdout]      |
[INFO] [stdout]   45 |               for path in paths.drain(..) {
[INFO] [stdout]      |                           ---------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           `iter` calls a custom destructor
[INFO] [stdout]      |                           `iter` will be dropped later as of Edition 2024
[INFO] [stdout]   46 |                   imported.insert(path.clone());
[INFO] [stdout]   47 |                   match self.import_asset(&path, config, library).await {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                                         |
[INFO] [stdout]      |                         |                                         this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      |                         |                                         up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         |                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      |                         up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `__awaitee` calls a custom destructor
[INFO] [stdout]      |                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   55 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]   58 |                   let mut pool = vec![];
[INFO] [stdout]      |                       --------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `pool` calls a custom destructor
[INFO] [stdout]      |                       `pool` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   63 |                   for result in join_all(pool.drain(..)).await {
[INFO] [stdout]      |                       ------    ------------------------------
[INFO] [stdout]      |                       |         |                        |
[INFO] [stdout]      |                       |         |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                       |         |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                       |         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                       |         `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       `result` calls a custom destructor
[INFO] [stdout]      |                       `result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   67 |                                   states.write().await.remove_dependent(id, result.asset.id);
[INFO] [stdout]      |                                   --------------------
[INFO] [stdout]      |                                   |              |
[INFO] [stdout]      |                                   |              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                                   |              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   84 |                       AssetRefresher.remove_artifact(id, config.cache()).await;
[INFO] [stdout]      |                       --------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |                       `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   90 |               let mut result = AssetRefresher
[INFO] [stdout]      |  _________________----------___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                 `#10` will be dropped later as of Edition 2024
[INFO] [stdout]   91 | |                 .refresh_sources(config, library, RefreshMode::DEPS_MODIFIED)
[INFO] [stdout]   92 | |                 .await;
[INFO] [stdout]      | |                  -----
[INFO] [stdout]      | |                  |   |
[INFO] [stdout]      | |__________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      |                    |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      |                    `#12` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `iter` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/drain.rs:173:0
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]      |
[INFO] [stdout]  575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project_lite::pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/asset/src/database/update.rs:486:33
[INFO] [stdout]      |
[INFO] [stdout]  486 |             if let Some(info) = library.write().await.remove(&path) {
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                 |               |
[INFO] [stdout]      |                                 |               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                 |               up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  489 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project_lite::pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/asset/src/database/update.rs:47:23
[INFO] [stdout]      |
[INFO] [stdout]   45 |               for path in paths.drain(..) {
[INFO] [stdout]      |                           ---------------
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           `iter` calls a custom destructor
[INFO] [stdout]      |                           `iter` will be dropped later as of Edition 2024
[INFO] [stdout]   46 |                   imported.insert(path.clone());
[INFO] [stdout]   47 |                   match self.import_asset(&path, config, library).await {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                         |                                         |
[INFO] [stdout]      |                         |                                         this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      |                         |                                         up until Edition 2021 `#14` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         |                                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         |                                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      |                         up until Edition 2021 `#13` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         `__awaitee` calls a custom destructor
[INFO] [stdout]      |                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   55 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]   58 |                   let mut pool = vec![];
[INFO] [stdout]      |                       --------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `pool` calls a custom destructor
[INFO] [stdout]      |                       `pool` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   63 |                   for result in join_all(pool.drain(..)).await {
[INFO] [stdout]      |                       ------    ------------------------------
[INFO] [stdout]      |                       |         |                        |
[INFO] [stdout]      |                       |         |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                       |         |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       |         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                       |         `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                       |         `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       `result` calls a custom destructor
[INFO] [stdout]      |                       `result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   67 |                                   states.write().await.remove_dependent(id, result.asset.id);
[INFO] [stdout]      |                                   --------------------
[INFO] [stdout]      |                                   |              |
[INFO] [stdout]      |                                   |              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                                   |              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   84 |                       AssetRefresher.remove_artifact(id, config.cache()).await;
[INFO] [stdout]      |                       --------------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |                       `#9` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   90 |               let mut result = AssetRefresher
[INFO] [stdout]      |  _________________----------___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      | |                 `#10` will be dropped later as of Edition 2024
[INFO] [stdout]   91 | |                 .refresh_sources(config, library, RefreshMode::DEPS_MODIFIED)
[INFO] [stdout]   92 | |                 .await;
[INFO] [stdout]      | |                  -----
[INFO] [stdout]      | |                  |   |
[INFO] [stdout]      | |__________________|___this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      |                    |   `#11` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      |                    `#12` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `iter` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/drain.rs:173:0
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:575:1
[INFO] [stdout]      |
[INFO] [stdout]  575 | impl<Fut> Drop for FuturesUnordered<Fut> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project_lite::pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/asset/src/database/update.rs:486:33
[INFO] [stdout]      |
[INFO] [stdout]  486 |             if let Some(info) = library.write().await.remove(&path) {
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                 |               |
[INFO] [stdout]      |                                 |               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                 |               up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  489 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.14/src/lib.rs:1288:9
[INFO] [stdout]      |
[INFO] [stdout] 1288 | /         impl $(<
[INFO] [stdout] 1289 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1290 | |             $( $generics
[INFO] [stdout] 1291 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |             ),*
[INFO] [stdout] 1295 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock/raw.rs:414:1
[INFO] [stdout]      |
[INFO] [stdout]  414 | / pin_project_lite::pin_project! {
[INFO] [stdout]  415 | |     /// The future returned by [`RawRwLock::write`].
[INFO] [stdout]  416 | |
[INFO] [stdout]  417 | |     pub(super) struct RawWrite<'a> {
[INFO] [stdout] ...    |
[INFO] [stdout]  441 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/async-lock-3.4.0/src/rwlock.rs:1222:1
[INFO] [stdout]      |
[INFO] [stdout] 1222 | impl<'a, T: ?Sized> Drop for RwLockWriteGuard<'a, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project_lite::pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.5
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.5
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking window v0.1.0 (/opt/rustwide/workdir/crates/window)
[INFO] [stderr]    Migrating crates/window/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking basic v0.1.0 (/opt/rustwide/workdir/examples/basic)
[INFO] [stderr]    Migrating examples/basic/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/basic/examples/basic.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s
[INFO] [stderr] crater-edition-check: basic v0.1.0 (/opt/rustwide/workdir/examples/basic) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: asset v0.1.0 (/opt/rustwide/workdir/crates/asset) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: ecs v0.1.0 (/opt/rustwide/workdir/crates/ecs) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: game v0.1.0 (/opt/rustwide/workdir/crates/game) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: window v0.1.0 (/opt/rustwide/workdir/crates/window) updating edition from 2021 to 2024
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Checking ecs v0.1.0 (/opt/rustwide/workdir/crates/ecs)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn select(&self, index: usize) -> Option<SelectedCell> {
[INFO] [stdout]     |                   ^^^^^                          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn select(&self, index: usize) -> Option<SelectedCell<'_>> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:141:23
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn select_mut(&mut self, index: usize) -> Option<SelectedCellMut> {
[INFO] [stdout]     |                       ^^^^^^^^^                          ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn select_mut(&mut self, index: usize) -> Option<SelectedCellMut<'_>> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn cell(&self, entity: Entity, id: &ComponentId) -> Option<SelectedCell> {
[INFO] [stdout]     |                 ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn cell(&self, entity: Entity, id: &ComponentId) -> Option<SelectedCell<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:471:19
[INFO] [stdout]     |
[INFO] [stdout] 471 |     pub fn select(&self, entity: &Entity) -> Option<SelectedRow> {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 471 |     pub fn select(&self, entity: &Entity) -> Option<SelectedRow<'_>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:481:23
[INFO] [stdout]     |
[INFO] [stdout] 481 |     pub fn select_mut(&mut self, entity: &Entity) -> Option<SelectedRowMut> {
[INFO] [stdout]     |                       ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 481 |     pub fn select_mut(&mut self, entity: &Entity) -> Option<SelectedRowMut<'_>> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/core/bitset.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitsetIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitsetIter<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:341:29
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn iter<T: 'static>(&self) -> BlobIter<T> {
[INFO] [stdout]     |                             ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn iter<T: 'static>(&self) -> BlobIter<'_, T> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:345:33
[INFO] [stdout]     |
[INFO] [stdout] 345 |     pub fn iter_mut<T: 'static>(&mut self) -> BlobIterMut<T> {
[INFO] [stdout]     |                                 ^^^^^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 345 |     pub fn iter_mut<T: 'static>(&mut self) -> BlobIterMut<'_, T> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:350:35
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub unsafe fn ptr<T: 'static>(&self, index: usize) -> Ptr<T> {
[INFO] [stdout]     |                                   ^^^^^                   ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub unsafe fn ptr<T: 'static>(&self, index: usize) -> Ptr<'_, T> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:501:28
[INFO] [stdout]     |
[INFO] [stdout] 501 |     pub fn ptr<T: 'static>(&self) -> Ptr<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 501 |     pub fn ptr<T: 'static>(&self) -> Ptr<'_, T> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn spawner(&mut self) -> spawner::Spawner {
[INFO] [stdout]     |                    ^^^^^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn spawner(&mut self) -> spawner::Spawner<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn resource<R: Resource + Send>(&self) -> Res<R> {
[INFO] [stdout]    |                                         ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn resource<R: Resource + Send>(&self) -> Res<'_, R> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn resource_mut<R: Resource + Send>(&self) -> ResMut<R> {
[INFO] [stdout]    |                                             ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn resource_mut<R: Resource + Send>(&self) -> ResMut<'_, R> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:32:45
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn try_resource<R: Resource + Send>(&self) -> Option<Res<R>> {
[INFO] [stdout]    |                                             ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn try_resource<R: Resource + Send>(&self) -> Option<Res<'_, R>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn try_resource_mut<R: Resource + Send>(&self) -> Option<ResMut<R>> {
[INFO] [stdout]    |                                                 ^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                 |
[INFO] [stdout]    |                                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn try_resource_mut<R: Resource + Send>(&self) -> Option<ResMut<'_, R>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:42:43
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn non_send_resource<R: Resource>(&self) -> Res<R> {
[INFO] [stdout]    |                                           ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn non_send_resource<R: Resource>(&self) -> Res<'_, R> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:47:47
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn non_send_resource_mut<R: Resource>(&self) -> ResMut<R> {
[INFO] [stdout]    |                                               ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn non_send_resource_mut<R: Resource>(&self) -> ResMut<'_, R> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:52:47
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn try_non_send_resource<R: Resource>(&self) -> Option<Res<R>> {
[INFO] [stdout]    |                                               ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn try_non_send_resource<R: Resource>(&self) -> Option<Res<'_, R>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_non_send_resource_mut<R: Resource>(&self) -> Option<ResMut<R>> {
[INFO] [stdout]    |                                                   ^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_non_send_resource_mut<R: Resource>(&self) -> Option<ResMut<'_, R>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:372:31
[INFO] [stdout]     |
[INFO] [stdout] 372 |             let id = unsafe { WORLD_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed) };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout] 365 -     pub static mut WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout] 365 +     pub static WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs` (lib test) due to 1 previous error; 19 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn select(&self, index: usize) -> Option<SelectedCell> {
[INFO] [stdout]     |                   ^^^^^                          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn select(&self, index: usize) -> Option<SelectedCell<'_>> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:141:23
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn select_mut(&mut self, index: usize) -> Option<SelectedCellMut> {
[INFO] [stdout]     |                       ^^^^^^^^^                          ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn select_mut(&mut self, index: usize) -> Option<SelectedCellMut<'_>> {
[INFO] [stdout]     |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn cell(&self, entity: Entity, id: &ComponentId) -> Option<SelectedCell> {
[INFO] [stdout]     |                 ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn cell(&self, entity: Entity, id: &ComponentId) -> Option<SelectedCell<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:471:19
[INFO] [stdout]     |
[INFO] [stdout] 471 |     pub fn select(&self, entity: &Entity) -> Option<SelectedRow> {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 471 |     pub fn select(&self, entity: &Entity) -> Option<SelectedRow<'_>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/archetype/table.rs:481:23
[INFO] [stdout]     |
[INFO] [stdout] 481 |     pub fn select_mut(&mut self, entity: &Entity) -> Option<SelectedRowMut> {
[INFO] [stdout]     |                       ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 481 |     pub fn select_mut(&mut self, entity: &Entity) -> Option<SelectedRowMut<'_>> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/core/bitset.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitsetIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitsetIter<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:341:29
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn iter<T: 'static>(&self) -> BlobIter<T> {
[INFO] [stdout]     |                             ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn iter<T: 'static>(&self) -> BlobIter<'_, T> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:345:33
[INFO] [stdout]     |
[INFO] [stdout] 345 |     pub fn iter_mut<T: 'static>(&mut self) -> BlobIterMut<T> {
[INFO] [stdout]     |                                 ^^^^^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 345 |     pub fn iter_mut<T: 'static>(&mut self) -> BlobIterMut<'_, T> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:350:35
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub unsafe fn ptr<T: 'static>(&self, index: usize) -> Ptr<T> {
[INFO] [stdout]     |                                   ^^^^^                   ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub unsafe fn ptr<T: 'static>(&self, index: usize) -> Ptr<'_, T> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/core/internal/blob.rs:501:28
[INFO] [stdout]     |
[INFO] [stdout] 501 |     pub fn ptr<T: 'static>(&self) -> Ptr<T> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 501 |     pub fn ptr<T: 'static>(&self) -> Ptr<'_, T> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn spawner(&mut self) -> spawner::Spawner {
[INFO] [stdout]     |                    ^^^^^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 298 |     pub fn spawner(&mut self) -> spawner::Spawner<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn resource<R: Resource + Send>(&self) -> Res<R> {
[INFO] [stdout]    |                                         ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn resource<R: Resource + Send>(&self) -> Res<'_, R> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn resource_mut<R: Resource + Send>(&self) -> ResMut<R> {
[INFO] [stdout]    |                                             ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn resource_mut<R: Resource + Send>(&self) -> ResMut<'_, R> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:32:45
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn try_resource<R: Resource + Send>(&self) -> Option<Res<R>> {
[INFO] [stdout]    |                                             ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn try_resource<R: Resource + Send>(&self) -> Option<Res<'_, R>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn try_resource_mut<R: Resource + Send>(&self) -> Option<ResMut<R>> {
[INFO] [stdout]    |                                                 ^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                 |
[INFO] [stdout]    |                                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn try_resource_mut<R: Resource + Send>(&self) -> Option<ResMut<'_, R>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:42:43
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn non_send_resource<R: Resource>(&self) -> Res<R> {
[INFO] [stdout]    |                                           ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn non_send_resource<R: Resource>(&self) -> Res<'_, R> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:47:47
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn non_send_resource_mut<R: Resource>(&self) -> ResMut<R> {
[INFO] [stdout]    |                                               ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn non_send_resource_mut<R: Resource>(&self) -> ResMut<'_, R> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:52:47
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn try_non_send_resource<R: Resource>(&self) -> Option<Res<R>> {
[INFO] [stdout]    |                                               ^^^^^            ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn try_non_send_resource<R: Resource>(&self) -> Option<Res<'_, R>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/ecs/src/world/cell.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_non_send_resource_mut<R: Resource>(&self) -> Option<ResMut<R>> {
[INFO] [stdout]    |                                                   ^^^^^            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_non_send_resource_mut<R: Resource>(&self) -> Option<ResMut<'_, R>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> crates/ecs/src/world/mod.rs:372:31
[INFO] [stdout]     |
[INFO] [stdout] 372 |             let id = unsafe { WORLD_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed) };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout] 365 -     pub static mut WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout] 365 +     pub static WORLD_ID: AtomicU32 = AtomicU32::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs` (lib) due to 1 previous error; 19 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61", kill_on_drop: false }`
[INFO] [stdout] 432dfd31285640f8c2966557dc60aab577820f23ab7e87caaba8a413ae98eb61
